package io.gitee.chearnee.fw.audit.entity;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import io.gitee.chearnee.fw.audit.constant.enums.EventLevel;
import io.gitee.chearnee.fw.audit.constant.enums.EventResult;
import io.gitee.chearnee.fw.audit.constant.enums.EventType;
import io.gitee.chearnee.fw.audit.constant.enums.OperationType;
import lombok.Data;

import java.io.Serializable;
import java.time.LocalDateTime;

/**
 * 系统审计日志
 *
 * @TableName sys_audit_log
 */
@TableName(value = "sys_audit_log")
@Data
public class SysAuditLog implements Serializable {

  /**
   * 主键
   */
  @TableId(type = IdType.AUTO)
  private Long id;

  /**
   * IP
   */
  private String ip;

  /**
   * 操作类型1:查询,2:新增,3:修改,4:删除,5: 导出
   */
  private OperationType operationType;

  /**
   * 事件类型1:业务类型,2:系统类型
   */
  private EventType eventType;

  /**
   * 事件等级1:低,2:中,3:高
   */
  private EventLevel eventLevel;

  /**
   * 执行时间
   */
  private Long executionTime;
  /**
   * 操作者
   */
  private String operator;

  /**
   * 操作者id
   */
  private Long operatorId;

  /**
   * 模块名
   */
  private String moduleName;
  /**
   * 应用名
   */
  private String applicationName;

  /**
   * 请求数据
   */
  private String requestContent;

  /**
   * 事件描述
   */
  private String eventMemo;

  /**
   * 事件结果0:失败1:成功
   */
  private EventResult eventResult;

  /**
   * 日志时间
   */
  private LocalDateTime createAt;

  @TableField(exist = false)
  private static final long serialVersionUID = 1L;
}